package com.jcxy.mapper;

import com.jcxy.VO.UserVo;
import com.jcxy.pojo.Dept;

import java.util.List;
import java.util.Map;

public interface DeptMapper {

    /**
     * 查询部门数量
     * @param dto 包含查询条件
     * @return
     */
    Integer queryDeptCount(Map dto);

    /**
     * 查询部门信息
     * @param dto 包括查询条件和分页信息
     * @return
     */
    List<Dept> queryDept(Map dto);

    /**
     * 插入部门基本信息
     * @param dept
     */
    void insertDept(Dept dept);

    /**
     * 插入职位-部门关系信息
     * @param dept
     */
    void insertDeptRelationPosition(Dept dept);

    /**
     * 更新职位基本信息
     * @param dto
     * @return
     */
    int updateDept(Map dto);

    /**
     * 删除部门拥有的职位
     * @param dept_id
     * @return
     */
    int deleteDeptRelationPosition(Integer dept_id);

    /**
     * 查询部门员工数
     * @param dto
     * @return
     */
    Integer queryDeptStaffCount(Map dto);

    /**
     * 查询部门员工信息
     * @param dto 包括查询条件和分页信息
     * @return
     */
    List<UserVo> queryDeptStaff(Map dto);

    /**
     * 更新部门领导
     * @param dto
     * @return
     */
    int updateDeptManager(Map dto);

    /**
     * 查询部门领导姓名
     * @param dept_id
     * @return
     */
    String queryDeptManagerName(Integer dept_id);

    /**
     * 修改员工的部门、职位
     * @param dto
     * @return
     */
    int updateUserDeptJob(Map dto);

    /**
     * 删除部门
     * @param dept_id
     * @return
     */
    int deleteDept(Integer dept_id);

    /**
     * 获取人数前七的部门的部门名和人数
     * @return
     */
    List<Map> queryDeptNum();
}
